iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
自我挑戰組

從零開始學Java系列 第 24

Day24 Shallow deep copy &Matrix

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20211006/201404577jGOAFPW9J.jpg
一個正常的物件:Person p = new person();
https://ithelp.ithome.com.tw/upload/images/20211006/20140457Ge9veloR69.jpg
這是一個單一物件的結構

●Shallow copy:
1.每當我們使用clone()方法時,我們都會獲得 object 的淺拷貝,這意味著它會創建新實例並將object的所有字段複製到該新實例並將其作為object類型返回,我們需要將其顯式轉換回原始object。這是object的淺拷貝。
2. object類的clone()方法支持object的淺拷貝。如果object在淺拷貝中包含原始以及非原始或引用類型變量,則clone object還引用原始object所引用的同一object,因為僅複製object引用而不是引用object本身。
https://ithelp.ithome.com.tw/upload/images/20211006/20140457xijzWPMRrF.jpg

將上一個物件傳到目前物件的建構子!
https://ithelp.ithome.com.tw/upload/images/20211006/201404574uCrYKxJHF.jpg
有二個參考點(References)指到同一份資料

●Deep copy:
1.每當我們需要自己的副本而不使用 default implementation時,我們稱之為深拷貝,每當我們需要object的深拷貝時,我們需要 implement according to our need。
2.所以對於深拷貝,我們需要確保所有的 member class也實現了Cloneable nterface並覆蓋了object類的clone()方法。

二個完全獨立的物件


上一篇
Day23 Methods (Ⅰ)
下一篇
Day25 Matrix
系列文
從零開始學Java30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言